1

16진수 표기법과 가상 주소 공간

AI031Lesson 2
00:00

다음으로 들어가세요: 기계 수준의 프로그램 보기, 여기서 하드웨어의 복잡성은 구조화된 가상 주소 공간. 이 관점에서 메모리는 변수의 집합이 아니라, 8비트 블록이라고 부르는 거대하고 연속적인 배열입니다. 바이트. $w$비트 워드 크기를 갖는 기계에서는 이러한 주소가 $0$부터 $2^w - 1$까지 범위를 가지며, 프로그램의 접근 가능 범위를 정의합니다.

1. 16의 힘

이진수는 회로의 언어이지만, 16진수 표기법 프로그래머의 언어입니다. 왜냐하면 $16 = 2^4$이므로, 하나의 16진수 자릿수(0–F)는 정확히 4비트 네이블에 매핑되기 때문입니다. 이를 통해 1바이트 값은 정확히 두 자릿수로 간결하게 표현할 수 있습니다 (예: 0xFF). 이 약식은 기계어 및 어셈블리 코드읽기에 필수적입니다. 예를 들어 명령어 4004dc: 48 03 47 28.

그림 2.2: 16진수-이진수-십진수 변환표16진수십진수이진수01...9ABCDEF01...910111213141500000001...1001101010111100110111101111 규칙: 십진수 x 를 16진수로 변환하려면, 반복적으로 다음을 계산하세요: x = q ⋅ 16 + r

2. 정밀도와 산술 연산

정수형 데이터 타입을 조작하면서 우리는 정수형 데이터 타입을 마주하게 되고, 부울 링 및 2의 보수 논리를 만나게 됩니다. 우리는 리틀 엔디안 저장 방식, 정수 오버플로우그리고 단일 정밀도 부동 소수점에서 무한대 ($+\infty$) 및 NaN 이 존재합니다. 이러한 비트 패턴을 이해하는 것은 임의 크기의 산술 연산 과 견고한 시스템 프로그래밍을 익히는 첫걸음입니다.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>